Skip to main content

Explain design model.

Design Model in Software Engineering​

A design model is a representation of a software system that is created during the design phase of software development. It translates the requirements gathered during analysis into a blueprint for constructing the system, providing a conceptual framework that guides the implementation process. Design models describe the system at various levels of abstraction and from different perspectives.

Purpose of Design Models​

Design models serve several important purposes:

  1. Blueprint for Implementation: Provide detailed guidance for coding and construction
  2. Communication Tool: Facilitate understanding among team members and stakeholders
  3. Documentation: Capture design decisions and system structure
  4. Analysis Medium: Enable evaluation of design alternatives and quality attributes
  5. Verification Basis: Allow checking that requirements are properly addressed
  6. Evolution Framework: Support system maintenance and evolution

Components of a Design Model​

A comprehensive design model consists of multiple sub-models that address different aspects of the system:

1. Architectural Design Model​

  • Defines the overall structure of the system
  • Identifies major components and their relationships
  • Establishes architectural patterns and styles
  • Addresses global control structure and data management

2. Interface Design Model​

  • Specifies how components interact with each other
  • Defines APIs (Application Programming Interfaces)
  • Details user interface layout and interaction patterns
  • Describes external system interfaces

3. Component-Level Design Model​

  • Refines each architectural component into implementable modules
  • Defines algorithms and data structures
  • Specifies processing details and logic
  • Addresses component-specific behavior

4. Data Design Model​

  • Describes data structures and relationships
  • Defines database schemas and object models
  • Specifies data transformation and persistence mechanisms
  • Addresses data access patterns

5. Behavioral Design Model​

  • Details how the system responds to external events
  • Defines system states and transitions
  • Specifies control flow and concurrency
  • Addresses error handling and exception management

Representation Techniques for Design Models​

Design models are represented using various notations and diagrams:

1. UML (Unified Modeling Language) Diagrams​

  • Class Diagrams: Show static structure of classes and their relationships
  • Sequence Diagrams: Illustrate interaction between objects over time
  • Component Diagrams: Depict organization and dependencies among components
  • State Diagrams: Represent states and transitions of system objects
  • Activity Diagrams: Show workflow and procedural logic
  • Deployment Diagrams: Illustrate physical deployment of artifacts

2. Entity-Relationship Diagrams (ERDs)​

  • Model data entities and their relationships
  • Support database design and data structure definition

3. Data Flow Diagrams (DFDs)​

  • Represent flow of data through the system
  • Show data transformations and storage

4. Architectural Views​

  • Module view: Shows code structure and organization
  • Component-and-connector view: Illustrates runtime entities and interactions
  • Allocation view: Maps software elements to environment

5. Formal Specification Languages​

  • Using mathematical notation to precisely specify behavior
  • Examples include Z notation, VDM, and OCL

Design Model Abstraction Levels​

Design models exist at different levels of abstraction:

1. Conceptual Level​

  • High-level models focusing on system concepts
  • Architecture and major components
  • Broad interaction patterns

2. Logical Level​

  • Detailed structural and behavioral specifications
  • Independent of implementation technology
  • Focused on "what" the system does

3. Physical Level​

  • Implementation-specific details
  • Technology choices and constraints
  • Focused on "how" the system works

Design Model Evolution​

Design models evolve through several stages:

  1. Initial Design Model: Based directly on requirements analysis
  2. Refined Design Model: Enhanced through design iterations and reviews
  3. Final Design Model: Complete specification ready for implementation
  4. As-Built Design Model: Updated to reflect the actual implemented system

Design Model Quality Attributes​

A good design model should exhibit these qualities:

  • Completeness: Covers all system aspects required for implementation
  • Consistency: Contains no contradictions between different parts
  • Correctness: Accurately represents the intended system
  • Understandability: Clear and comprehensible to stakeholders
  • Modularity: Organized into cohesive, loosely coupled components
  • Traceability: Linked to requirements and implementation artifacts
  • Maintainability: Supports system evolution and modification

Design models form the critical bridge between requirements and implementation, translating abstract user needs into concrete specifications that developers can implement.